package com.bsoft.gol.hcs.common.bean.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class BasAccountFamily implements Serializable {
	private static final long serialVersionUID = -8218072944988384419L;
	private Long id;

	private Long uid;

	private Long ruid;

	@NotEmpty(message = "手机不能为空！")
	private String mobile;
	@NotEmpty(message = "真实姓名不能为空！")
	@Length(min = 1, max = 32, message = "真实姓名必须在1-32个字符之间")
	private String realname;
	@NotNull(message = "性别不能为空！")
	private Byte sexcode;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",locale = "zh_CN", timezone = "GMT+8")
	private Date birthdate;

	private String header;
	@NotEmpty(message = "证件类型不能为空！")
	private String cardtype;
	@NotEmpty(message = "证件号码不能为空！")
	@Length(min = 6, max = 18, message = "证件号码必须在6-18个字符之间")
	private String idcard;

	private String relation;

	private Short activated;

	private Byte nationality;

	private String province;

	private String provinceCode;

	private String city;

	private String cityCode;

	private String area;

	private String areaCode;

	private String address;
	private String patientcode;

	private String certificationValidityPeriod; //1认证 2未认证

	private String outpatientCardNo;
	private Long outpatientCardId;

	private String guardianName;

	private Integer guardianCardType;

	private String guardianCardNum;

	private String guardianPhone;

	private List<HisBusCardResponse> hisBusCardList;

	public String getGuardianName() {
		return guardianName;
	}

	public void setGuardianName(String guardianName) {
		this.guardianName = guardianName;
	}

	public Integer getGuardianCardType() {
		return guardianCardType;
	}

	public void setGuardianCardType(Integer guardianCardType) {
		this.guardianCardType = guardianCardType;
	}

	public String getGuardianCardNum() {
		return guardianCardNum;
	}

	public void setGuardianCardNum(String guardianCardNum) {
		this.guardianCardNum = guardianCardNum;
	}

	public String getGuardianPhone() {
		return guardianPhone;
	}

	public void setGuardianPhone(String guardianPhone) {
		this.guardianPhone = guardianPhone;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getUid() {
		return uid;
	}

	public void setUid(Long uid) {
		this.uid = uid;
	}

	public Long getRuid() {
		return ruid;
	}

	public void setRuid(Long ruid) {
		this.ruid = ruid;
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile == null ? null : mobile.trim();
	}

	public String getRealname() {
		return realname;
	}

	public void setRealname(String realname) {
		this.realname = realname == null ? null : realname.trim();
	}

	public Byte getSexcode() {
		return sexcode;
	}

	public void setSexcode(Byte sexcode) {
		this.sexcode = sexcode;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",locale = "zh_CN", timezone = "GMT+8")
	public Date getBirthdate() {
		return birthdate;
	}

	public void setBirthdate(Date birthdate) {
		this.birthdate = birthdate;
	}

	public String getHeader() {
		return header;
	}

	public void setHeader(String header) {
		this.header = header == null ? null : header.trim();
	}

	public String getCardtype() {
		return cardtype;
	}

	public void setCardtype(String cardtype) {
		this.cardtype = cardtype == null ? null : cardtype.trim();
	}

	public String getIdcard() {
		return idcard;
	}

	public void setIdcard(String idcard) {
		this.idcard = idcard == null ? null : idcard.trim();
	}

	public String getRelation() {
		return relation;
	}

	public void setRelation(String relation) {
		this.relation = relation == null ? null : relation.trim();
	}

	public Short getActivated() {
		return activated;
	}

	public void setActivated(Short activated) {
		this.activated = activated;
	}

	public Byte getNationality() {
		return nationality;
	}

	public void setNationality(Byte nationality) {
		this.nationality = nationality;
	}

	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province == null ? null : province.trim();
	}

	public String getProvinceCode() {
		return provinceCode;
	}

	public void setProvinceCode(String provinceCode) {
		this.provinceCode = provinceCode == null ? null : provinceCode.trim();
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city == null ? null : city.trim();
	}

	public String getCityCode() {
		return cityCode;
	}

	public void setCityCode(String cityCode) {
		this.cityCode = cityCode == null ? null : cityCode.trim();
	}

	public String getArea() {
		return area;
	}

	public void setArea(String area) {
		this.area = area == null ? null : area.trim();
	}

	public String getAreaCode() {
		return areaCode;
	}

	public void setAreaCode(String areaCode) {
		this.areaCode = areaCode == null ? null : areaCode.trim();
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address == null ? null : address.trim();
	}

	public String getCertificationValidityPeriod() {
		return certificationValidityPeriod;
	}

	public void setCertificationValidityPeriod(String certificationValidityPeriod) {
		this.certificationValidityPeriod = certificationValidityPeriod == null ? null : certificationValidityPeriod
				.trim();
	}

	public String getOutpatientCardNo() {
		return outpatientCardNo;
	}

	public void setOutpatientCardNo(String outpatientCardNo) {
		this.outpatientCardNo = outpatientCardNo;
	}

	public Long getOutpatientCardId() {
		return outpatientCardId;
	}

	public void setOutpatientCardId(Long outpatientCardId) {
		this.outpatientCardId = outpatientCardId;
	}

	public String getPatientcode() {
		return patientcode;
	}

	public void setPatientcode(String patientcode) {
		this.patientcode = patientcode;
	}

	public List<HisBusCardResponse> getHisBusCardList() {
		return hisBusCardList;
	}

	public void setHisBusCardList(List<HisBusCardResponse> hisBusCardList) {
		this.hisBusCardList = hisBusCardList;
	}

	@Override
	public String toString() {
		return "BasAccountFamily{" +
				"id=" + id +
				", uid=" + uid +
				", ruid=" + ruid +
				", mobile='" + mobile + '\'' +
				", realname='" + realname + '\'' +
				", sexcode=" + sexcode +
				", birthdate=" + birthdate +
				", header='" + header + '\'' +
				", cardtype='" + cardtype + '\'' +
				", idcard='" + idcard + '\'' +
				", relation='" + relation + '\'' +
				", activated=" + activated +
				", nationality=" + nationality +
				", province='" + province + '\'' +
				", provinceCode='" + provinceCode + '\'' +
				", city='" + city + '\'' +
				", cityCode='" + cityCode + '\'' +
				", area='" + area + '\'' +
				", areaCode='" + areaCode + '\'' +
				", address='" + address + '\'' +
				", patientcode='" + patientcode + '\'' +
				", certificationValidityPeriod='" + certificationValidityPeriod + '\'' +
				", outpatientCardNo='" + outpatientCardNo + '\'' +
				", outpatientCardId=" + outpatientCardId +
				", hisBusCardList=" + hisBusCardList +
				'}';
	}
}